FIG. 1 depicts telecommunications system 100 in the prior art. Telecommunications system 100 comprises originating data-processing system 101; tandemed data-processing system 102; forward data-processing system 103; communication channels 104, 105-1 through 105-J, and 106-1 through 106-K; and telecommunications terminals 109 and 110, interconnected as shown. J and K are positive integers. User 108 interfaces with telecommunications system 100 by using telecommunications terminals 109 and 110.
Originating data-processing system 101, also known as a “central office switch,” serves one or more associated telecommunications terminals by supporting calls between those terminals and terminals that are served by other telecommunications switching devices. Originating data-processing system 101 is capable of setting up a call to a telecommunications terminal served by tandemed data-processing system 102, also known as a “private branch exchange” (or “PBX”). Furthermore, originating data-processing system 101 transmits speech and other signals to tandemed data-processing system 102 via communication channel 104.
Tandemed data-processing system 102, also known as a “private branch exchange,” serves one or more associated telecommunications terminals in a corporate environment by supporting calls between those terminals and terminals that are served by other telecommunications switching devices. Tandemed data-processing system 102 is capable of setting up a call from originating data-processing system 101, and receives speech and other signals for that call from originating data-processing system 101 via communication channel 104, which is also known as a “trunk.” Furthermore, tandemed data-processing system 102 is capable of setting up a call from forward data-processing system 103, and receives speech and other signals for that call from forward data-processing system 103 via communication channel 106, which is another trunk.
Tandemed data-processing system 102 is further capable of “tandeming” a call by extending the incoming call on communication channel 104 to outgoing communication channel 105, which is yet another trunk. When a telecommunications switching device is “tandemed,” it does not serve an end user directly, but does interconnect other switching devices in supporting a call. An example of a tandeming application is when a telecommunications terminal user, such as user 108 of deskset terminal 109, has incoming calls forwarded to another terminal, such as cellular terminal 110. The example reflects the commonplace practice of a user in a corporate environment who forwards calls to a cell phone when away from his or her office deskset terminal, in order to still be reachable by callers. In the example, tandemed data-processing system 102 selects communication channel 105 to forward the call.
Forward data-processing system 103, also known as a “wireless switching center,” serves one or more associated cellular telecommunications terminals by supporting calls between those terminals and terminals that are served by other data-processing systems. Forward data-processing system 103 is capable of setting up a call to one of its associated telecommunications terminals from a telecommunications terminal that is served—directly or indirectly—by tandemed data-processing system 102. Furthermore, forward data-processing system 103 receives speech and other signals from tandemed data-processing system 102 via communication channel 105.
Forward data-processing system 103 is further capable of forwarding a call by extending the incoming call on communication channel 105 to outgoing communication channel 106. An example of a forwarding application is when a telecommunications terminal user, such as user 108 of cellular terminal 110, has incoming calls forwarded to another terminal, such as deskset terminal 109, whenever the user does not answer a call. The example reflects the commonplace practice of users in a corporate environment forwarding calls to their corporate voice mail boxes in order to concentrate received voice messages into one voice mail system. In the example, forward data-processing system 103 selects communication channel 106 to forward the call.
A problem arises when user 108 has calls forwarded from terminal 109 to terminal 110 and from terminal 110 to terminal 109 at the same time. This concurrent forwarding of calls causes a “loop situation” to occur, in which an incoming call to tandemed data-processing system 102 gets forwarded to forward-data-processing data-processing system 103, then gets forwarded back to data-processing system 102, then gets forwarded back to data-processing system 103, and so on. In a loop situation, tandemed data-processing system 102 and forward data-processing system 103 will continue to allocate communication channels 105-2 through 105-j and 106-2 through 106-K. This can result in all available communication channel resources at tandemed data-processing system 102 being consumed.
Techniques exist in the prior art for detecting looping trunks. Such techniques, however, are typically slow to de-allocate all of the consumed resources. What is needed is a technique to detect and disconnect looping communication channels, without some of the costs, disadvantages, and limitations of techniques in the prior art.